在前一天我們提到了 Proxmox VE 做了虛擬化後的好處,以及備份、複寫功能提升了資訊安全中的可用性能力,今天要介紹的是 Proxmox VE 中對於網路安全極其好用的功能:防火牆。
Proxmox VE 的防火牆是基於知名套件 iptables 與 ebtables 而來,因此是完全相容於它。過去我們都知道 iptables 的設定與指令相當複雜不易上手,Proxmox VE 在 Web 介面上提供了簡單好用的管理功能,即便您沒有 iptables 與 ebtables 的相關使用經驗,都可以很快速的完成上手。
在 Proxmox VE 中提供了完整的防火牆功能,總共分成三個階層,分別對應 Datacenter 資料中心、Node 節點、VM/CT 虛擬機/容器。
這樣的好處是在單一介面上的設定,即可套用至叢集中的所有 VM/CT 上面,而且是單一介面設定。用了它以後,您就可以不需要在每一個 VM/CT 中分別安裝與設定防火牆,而且 VM/CT 中可能是各種不同的作業系統,更加提升了設定的困難與複雜度,對管理者來說掌控度更低。
虛擬機防火牆設定範例
要開始使用 Proxmox VE 防火牆,分別有幾道程序需要先行處理。
若要啟動 VM/CT 的防火牆設定,需要連資料中心與節點的一併啟動才行:
並且確認該節點的防火牆服務 pve-firewall 是否有在執行中,請至 [節點] > [系統] 查看。
確認防火牆服務執行中
接著,來到欲設定防火牆的 VM/CT 上,調整以下設定:
啟動網路裝置的防火牆功能
在最後一條策略全部丟棄
把規則都設定完後,在該規則前方的核取方塊予以勾選,即開始生效。
除了基本的規則建立以外,還有幾個技巧可以協助您將防火牆做的更好用。
一般來說我們將規則制定好後,會對固定一些管理的主機進行特定 Port 開放 (例如對 IT 管理者的電腦),若要至每台都設定如 SSH、RDP 等常用管理埠號與允許 IP,這樣的工作負擔是相當惱人的。
因此,我們利用這個部份,在資料中心層級一次設定,這樣所有 VM/CT 就可以直接選用,大大降低設定的門檻。
在資料中心內建立安全群組
上圖就是一個實例,將 IT 管理者的電腦建為群組,並統一指派他們具有 SSH、RDP 等連接埠的規則,再到 VM/CT 的防火牆內的規則中,新增這條安全群組,即可一次套用這些預先建好的規則,快速又方便,且集中控管設定避免不同步。
在 VM/CT 規則內新增安全群組
除了一次設好規則之外,我們也可以把要放在一起的主機 IP 預先設成一個集合,在指定規則的來源或目的時就可以快速帶入,若包含的主機 IP 有異動時,也只要修改此處即可,不需要一台一台 VM/CT 的規則去修改,它可以是單一 IP,也可以是網段。
在資料中心建立 IP 集合
對於一些常用的服務,Proxmox VE 有預先提供一批定義好的巨集,只要選擇它就可以一次設好相對應的協定與連接埠號,很是方便。
例如 SMB 協定就包含了許多項目,透過巨集定義功能指派規則就會輕鬆無比。
巨集定義:SMB
如果這些防火牆設定越來越多與複雜之後,就會考慮到備份的問題,而在 Proxmox VE 中這件事卻相當容易。
Proxmox VE 的防火牆設定檔是以檔案形式存放,位置在 /etc/pve/firewall
之內,每一個 VM/CT 的防火牆設定都是一個檔案並以 VM/CT ID 編號,例如 100.fw 就是編號 100 這台機器的防火牆設定檔,容易對照。
檔案的內容以明文存放,格式接近於 iptables 的指令用法,一目了然。
防火牆設定檔內容
因此,您只要將這批檔案複製起來,立即完成防火牆設定的備份。我是另外寫了 Shell Script 並設為排程,讓它自動定期備份至其它主機存放。
採用 Proxmox VE 虛擬化平台所提供的 Host 層防火牆,除效能會比起在客體機裡使用軟體防火牆來的效能更好,也可以將防火牆的權限拉出客體機外,避免客體機內的程式把防火牆機制竄改或關閉導致失去防護能力。
再加上搭配集中管理設定方式,可以容易控管相關的規則以及對象,確保在同樣的邏輯之下做到同樣的管理範圍,讓虛擬機之間的網路連線策略更加安全。
最後提醒,本篇所提到的設定是專門針對 VM/CT 的防火牆策略設定,至於 Proxmox VE Node 節點本身的防火牆也應該要啟用並制訂規則,保護節點自身的安全,Proxmox VE 節點的重要連接埠如下:
Proxmox VE Documentation Index
https://pve.proxmox.com/pve-docs/
Proxmox VE Firewall
https://pve.proxmox.com/pve-docs/chapter-pve-firewall.html
[netfilter] Introduction to ebtables | Hwchiu Learning Note
https://www.hwchiu.com/netfilter-eiptables-i.html